package com.openlogic.common.security.rpc;

import java.util.List;

import org.noear.nami.annotation.NamiClient;
import org.noear.nami.annotation.NamiMapping;
import org.noear.solon.cloud.annotation.CloudBreaker;
import org.noear.solon.core.handle.Result;

import com.openlogic.common.core.constants.HttpConstant;
import com.openlogic.common.core.constants.ServiceConstant;
import com.openlogic.common.core.web.domain.entity.SysUser;
import com.openlogic.common.core.web.nami.INamiClientFilter;

/**
 * @ClassName: RemoteSecuritySysUserService
 * @Description: 使用令牌桶限流，在全局中捕获 用户服务rpc
 * @author weiyongpeng
 * @date 2025年1月30日 下午9:33:08
 */
@CloudBreaker("remoteSecuritySysUserService")
@NamiClient(name = ServiceConstant.SERVICE_SYSTEM, path = ServiceConstant.PATH_TO_SYSTEM_USER)
public interface RemoteSecuritySysUserService extends INamiClientFilter {

	/**
	 * 描述：获取用户信息根据用户id
	 * @Title: getUserById
	 * @param string
	 * @return
	 * @author weiyongpeng
	 * @date 2025年1月30日 下午9:38:58
	 */
	@NamiMapping(HttpConstant.HTTP_GET)
	Result<SysUser> getUserById(String string);

	/**
	 * 描述：当前登录用户权限列表
	 * @Title: getUserPermissionList
	 * @param loginIdAsString
	 * @return
	 * @author weiyongpeng
	 * @date 2025年1月30日 下午9:40:15
	 */
	@NamiMapping(HttpConstant.HTTP_GET)
	Result<List<String>> getUserPermissionList(String loginIdAsString);

	/**
	 * 描述：当前登录用户角色列表
	 * @Title: getUserRoleList
	 * @param loginIdAsString
	 * @return
	 * @author weiyongpeng
	 * @date 2025年1月30日 下午9:41:49
	 */
	@NamiMapping(HttpConstant.HTTP_GET)
	Result<List<String>> getUserRoleList(String loginIdAsString);

}
